#ifndef BASEUNITCONVERSION_H_
#define BASEUNITCONVERSION_H_

#include <sstream>

template <typename Unit>
struct BaseUnitConversion
{
    BaseUnitConversion(const std::string& name, unsigned int factor, const Unit* referenceUnit);

    unsigned int toBase() const;

    void outputString(std::stringstream& os, const Unit* unit, unsigned int amountInBase) const;

private:
    unsigned int factor;
    const Unit*  referenceUnit;
    std::string  name;
};

#include "../src/BaseUnitConversion.cc"

#endif
